/**
 * Character.java
 * 
 * @author	Joe Scharnitzke
 * Date: 	May 31, 2011
 * 
 * Defines the Character data structure.  This structure is
 * meant to store information regarding any individual character
 * including name, player, stats, and more.
 *
 * Change Log:
 * 	06/10/11 10:55 - (v1.0) Release
 * 	May 31, 2011 1:20:31 PM - (v0.1) Initial Implementation
 */

package ds;

public class Character
{
	private String s_name, s_class, s_race, s_player;
	private int 
		i_level = 1, 
		i_xp = 0, 
		i_hp = 6, 
		i_str = 10, 
		i_agi = 10, 
		i_int = 10,
		i_foc = 10,
		i_con = 10, 
		i_cha = 10,
		i_creds = 0;
	private String[]
	    sa_abilities = {"None"},
	    sa_skills = {"None"},
	    sa_inv = {"None"},
	    sa_weps = {"None"},
	    sa_armor = {"None"};
	
	/**
	 * Single parameter constructor for Character objects.
	 * 
	 * @param char_name the name of the Character to create
	 */
	
	public Character(String char_name) { s_name = char_name; }
	
	/**
	 * Overloaded two parameter constructor for Character objects.
	 * 
	 * @param char_name the name of the Character to create
	 * @param char_class the class of the Character to create
	 */
	
	public Character(String char_name, String char_class)
	{
		s_name = char_name;
		s_class = char_class;
	}
	
	/**
	 * Overloaded three parameter constructor for Character objects.
	 * 
	 * @param char_name the name of the Character to create
	 * @param char_class the class of the Character to create
	 * @param char_race the race of the Character to create
	 */
	
	public Character(String char_name, String char_class, String char_race)
	{
		s_name = char_name;
		s_class = char_class;
		s_race = char_race;
	}
	
	/**
	 * Overloaded four parameter constructor for Character objects.
	 * 
	 * @param char_name the name of the Character to create
	 * @param char_class the class of the Character to create
	 * @param char_race the race of the Character to create
	 * @param char_player the name of the Character's player
	 */
	
	public Character(String char_name, String char_class, String char_race, String char_player)
	{
		s_name = char_name;
		s_class = char_class;
		s_race = char_race;
		s_player = char_player;
	}
	
	public String getSName() { return s_name; }
	public String getSClass() { return s_class; }
	public String getSRace() { return s_race; }
	public String getSPlayer() { return s_player; }
	public int getILevel() { return i_level; }
	public int getIXP() { return i_xp; }
	public int getIHP() { return i_hp; }
	public int getIStr() { return i_str; }
	public int getIAgi() { return i_agi; }
	public int getIInt() { return i_int; }
	public int getIFoc() { return i_foc; }
	public int getICon() { return i_con; }
	public int getICha() { return i_cha; }
	public int getICreds() { return i_creds; }
	public String[] getSAAbilities() { return sa_abilities; }
	public String[] getSASkills() { return sa_skills; }
	public String[] getSAInv() { return sa_inv; }
	public String[] getSAWeps() { return sa_weps; }
	public String[] getSAArmor() { return sa_armor; }
	
	public void setSName(String char_name) { s_name = char_name; }
	public void setSClass(String char_class) { s_class = char_class; }
	public void setSRace(String char_race) { s_race = char_race; }
	public void setSPlayer(String char_player) { s_player = char_player; }
	public void setILevel(int char_level) { i_level = char_level; }
	public void setIXP(int char_xp) { i_xp = char_xp; }
	public void setIHP(int char_hp) { i_hp = char_hp; }
	public void setIStr(int char_str) { i_str = char_str; }
	public void setIAgi(int char_agi) { i_agi = char_agi; }
	public void setIInt(int char_int) { i_int = char_int; }
	public void setIFoc(int char_foc) { i_foc = char_foc; }
	public void setICon(int char_con) { i_con = char_con; }
	public void setICha(int char_cha) { i_cha = char_cha; }
	public void setICreds(int char_creds) { i_creds = char_creds; }
	public void setSAAbilities(String[] char_abilities) { sa_abilities = char_abilities; }
	public void setSASkills(String[] char_skills) { sa_skills = char_skills; }
	public void setSAInv(String[] char_inv) { sa_inv = char_inv; }
	public void setSAWeps(String[] char_weps) { sa_weps = char_weps; }
	public void setSAArmor(String[] char_armor) { sa_armor = char_armor; }
	
	/**
	 * Overloaded toString method for this class.
	 */
	
	@Override
	public String toString()
	{
		return s_name + ": " + s_player + '\n'
				+ "Level " + i_level + ' ' + s_race + ' ' + s_class + '\n'
				+ "Str: " + i_str + '\n'
				+ "Agi: " + i_agi + '\n'
				+ "Int: " + i_int + '\n'
				+ "Foc: " + i_foc + '\n'
				+ "Con: " + i_con + '\n'
				+ "Cha: " + i_cha + '\n'
				+ i_creds + " credits";
	}
}
